/****************************************************************************
*					InferenceFactory
*
*	Description:	Class for creating objects of class Inference by 
*					name or ID of the reqired subclass
*
****************************************************************************/

#ifndef _InferenceFactory_H
#define _InferenceFactory_H

#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>
#include <stdlib.h>
#include "Inference.h"


class InferenceFactory {
  private:

  protected:
 
  public:

	// Class constructor
    InferenceFactory(void);
  
	// Class destructor
	~InferenceFactory(void);
	
	// Creates Inference object of class with a given ID
	Inference* createObjectByID(const signed int id);

	// Creates Inference object of class with a given Name
	Inference* createObjectByName(const std::string name);

};

#endif // _InferenceFactory_H
